[proofplan]
We test integrality against one coroot at a time. For a fixed root $\alpha$, the elements $e_\alpha$, $f_\alpha$, and $\alpha^\vee$ form the standard root $\mathfrak{sl}_2$-subalgebra of $\mathfrak g$. Restricting the finite-dimensional $\mathfrak g$-module $V$ to this subalgebra, a vector in $V_\lambda$ is an eigenvector for the Cartan element $\alpha^\vee$ with eigenvalue $\lambda(\alpha^\vee)$. The finite-dimensional representation theory of $\mathfrak{sl}_2(\mathbb C)$ then forces this eigenvalue to be an integer, and since $\alpha$ was arbitrary, $\lambda$ lies in the integral weight lattice.
[/proofplan]
[step:Restrict the module to the root $\mathfrak{sl}_2$-subalgebra]
Fix a root $\alpha \in \Phi$. By the definition of the coroot normalization, choose root vectors $e_\alpha \in \mathfrak g_\alpha$ and $f_\alpha \in \mathfrak g_{-\alpha}$ such that
\begin{align*}
[e_\alpha,f_\alpha]=\alpha^\vee,
\end{align*}
and the span
\begin{align*}
\mathfrak s_\alpha := \operatorname{span}_{\mathbb C}\{e_\alpha,\alpha^\vee,f_\alpha\} \subset \mathfrak g
\end{align*}
is a Lie subalgebra isomorphic to $\mathfrak{sl}_2(\mathbb C)$, with $\alpha^\vee$ corresponding to the standard Cartan element $h$.
Since $V$ is a finite-dimensional complex $\mathfrak g$-module, let $\rho: \mathfrak g \times V \to V$ denote the bilinear action map. The restricted map $\rho|_{\mathfrak s_\alpha \times V}: \mathfrak s_\alpha \times V \to V$ makes $V$ into a finite-dimensional $\mathfrak s_\alpha$-module.
[guided]
We want to prove that $\lambda(\alpha^\vee)$ is an integer. The reason for focusing on $\alpha^\vee$ is that the definition of the integral weight lattice requires integrality against every coroot.
For the fixed root $\alpha \in \Phi$, the standard root-space construction gives nonzero root vectors $e_\alpha \in \mathfrak g_\alpha$ and $f_\alpha \in \mathfrak g_{-\alpha}$ normalized so that
\begin{align*}
[e_\alpha,f_\alpha]=\alpha^\vee.
\end{align*}
With this normalization, the three-dimensional subspace
\begin{align*}
\mathfrak s_\alpha := \operatorname{span}_{\mathbb C}\{e_\alpha,\alpha^\vee,f_\alpha\}
\end{align*}
is a Lie subalgebra of $\mathfrak g$ isomorphic to $\mathfrak{sl}_2(\mathbb C)$. Under this isomorphism, $\alpha^\vee$ is the element corresponding to the standard Cartan element $h$ of $\mathfrak{sl}_2(\mathbb C)$.
The original action of $\mathfrak g$ on $V$ is a bilinear map $\rho: \mathfrak g \times V \to V$. Restricting this map to the subset $\mathfrak s_\alpha \times V$ gives an action map $\rho|_{\mathfrak s_\alpha \times V}: \mathfrak s_\alpha \times V \to V$ on the same [vector space](/page/Vector%20Space) $V$. Because $V$ is finite-dimensional as a complex vector space, this restricted representation is a finite-dimensional representation of the root $\mathfrak{sl}_2$-subalgebra.
[/guided]
[/step]
[step:Identify the relevant $\mathfrak{sl}_2$ Cartan eigenvalue]
Since $\lambda$ is a weight of $V$, the weight space $V_\lambda$ is nonzero. Choose a vector $v \in V_\lambda$ with $v \ne 0$. By definition of $V_\lambda$, for every $h \in \mathfrak h$,
\begin{align*}
h v = \lambda(h)v.
\end{align*}
Since $\alpha^\vee \in \mathfrak h$, substituting $h=\alpha^\vee$ gives
\begin{align*}
\alpha^\vee v = \lambda(\alpha^\vee)v.
\end{align*}
Thus $\lambda(\alpha^\vee)$ is an eigenvalue of the Cartan element $\alpha^\vee$ on the finite-dimensional $\mathfrak s_\alpha$-module $V$.
[guided]
The weight hypothesis supplies the vector on which the $\mathfrak{sl}_2$ argument will be tested. Since $V_\lambda$ is nonzero, choose $v \in V_\lambda$ with $v \ne 0$. The defining property of the weight space is that every $h \in \mathfrak h$ acts on $v$ by the scalar $\lambda(h)$, so
\begin{align*}
h v = \lambda(h)v.
\end{align*}
The coroot $\alpha^\vee$ belongs to $\mathfrak h$, so this identity may be evaluated at $h=\alpha^\vee$. We get
\begin{align*}
\alpha^\vee v = \lambda(\alpha^\vee)v.
\end{align*}
Because $v \ne 0$, this equation says exactly that $\lambda(\alpha^\vee)$ is an eigenvalue of the linear operator by which $\alpha^\vee$ acts on $V$. The previous step made $V$ into a finite-dimensional module for the subalgebra $\mathfrak s_\alpha$, so this is an eigenvalue of the Cartan element inside that finite-dimensional $\mathfrak s_\alpha$-module.
[/guided]
[/step]
[step:Apply finite-dimensional $\mathfrak{sl}_2$ weight integrality]
We use the standard finite-dimensional $\mathfrak{sl}_2(\mathbb C)$ representation-theoretic fact that, in every finite-dimensional complex $\mathfrak{sl}_2(\mathbb C)$-module, all eigenvalues of the standard Cartan element $h$ are integers. This is the arbitrary finite-dimensional version of the weight computation in the irreducible classification [citetheorem:9363]; equivalently, it follows by applying that same-run classification theorem to the composition factors of the module.
The restricted module $V$ is finite-dimensional over $\mathbb C$, and under the isomorphism $\mathfrak s_\alpha \cong \mathfrak{sl}_2(\mathbb C)$, the element $\alpha^\vee$ corresponds to the standard Cartan element $h$. Since $\lambda(\alpha^\vee)$ is an eigenvalue of $\alpha^\vee$ on $V$, the preceding $\mathfrak{sl}_2$ integrality fact gives
\begin{align*}
\lambda(\alpha^\vee) \in \mathbb Z.
\end{align*}
[guided]
At this point the problem has been reduced to a statement about finite-dimensional $\mathfrak{sl}_2(\mathbb C)$-modules. The restricted representation of $\mathfrak s_\alpha$ on $V$ is finite-dimensional, and the element whose eigenvalue we are studying, namely $\alpha^\vee$, is exactly the Cartan element in this copy of $\mathfrak{sl}_2$.
The finite-dimensional representation theory of $\mathfrak{sl}_2(\mathbb C)$ says that the irreducible finite-dimensional modules have highest weights $m \in \mathbb Z_{\ge 0}$ and weights
\begin{align*}
m,\, m-2,\, m-4,\, \dots,\, -m.
\end{align*}
This is the content of [citetheorem:9363]. Therefore every Cartan eigenvalue occurring in an irreducible finite-dimensional $\mathfrak{sl}_2(\mathbb C)$-module is an integer. For an arbitrary finite-dimensional $\mathfrak{sl}_2(\mathbb C)$-module, the same conclusion holds by passing to composition factors: the eigenvalues of the Cartan element on the whole module are among the eigenvalues appearing on its simple subquotients.
Applying this to the finite-dimensional $\mathfrak s_\alpha$-module $V$, and using the chosen isomorphism $\mathfrak s_\alpha \cong \mathfrak{sl}_2(\mathbb C)$ under which $\alpha^\vee$ corresponds to the standard Cartan element, every eigenvalue of $\alpha^\vee$ on $V$ is an integer. Since the previous step showed that $\lambda(\alpha^\vee)$ is one of those eigenvalues, we obtain
\begin{align*}
\lambda(\alpha^\vee) \in \mathbb Z.
\end{align*}
[/guided]
[/step]
[step:Conclude integrality against every coroot]
The root $\alpha \in \Phi$ was arbitrary. Therefore
\begin{align*}
\lambda(\alpha^\vee) \in \mathbb Z
\end{align*}
for every $\alpha \in \Phi$. By the definition of the integral weight lattice
\begin{align*}
P := \{\mu \in \mathfrak h^* : \mu(\alpha^\vee) \in \mathbb Z \text{ for every } \alpha \in \Phi\},
\end{align*}
this says precisely that $\lambda \in P$.
[guided]
The argument above was carried out after fixing an arbitrary root $\alpha \in \Phi$. No special property of that root was used beyond membership in $\Phi$, so the conclusion applies to every root in the root system:
\begin{align*}
\lambda(\alpha^\vee) \in \mathbb Z
\end{align*}
for every $\alpha \in \Phi$. The integral weight lattice was defined as
\begin{align*}
P := \{\mu \in \mathfrak h^* : \mu(\alpha^\vee) \in \mathbb Z \text{ for every } \alpha \in \Phi\}.
\end{align*}
Substituting $\mu=\lambda$ into this defining condition, the integrality just proved for all coroots is precisely the assertion that $\lambda \in P$.
[/guided]
[/step]